1. Field of the Invention
The invention relates generally to interprocess communications within a computer system, and more particularly, to an apparatus and method for passing messages from one or more writer processes to multiple reader processes.
2. Description of the Related Art
Multiple processes often can execute simultaneously in a computer system. The execution of one process may depend upon the results of another process. Thus, it frequently is necessary to transfer messages about one process running in a computer system to another process running in the computer system.
FIG. 1, for example, illustrates exemplary interprocess communication of messages pertaining to error handling. Multiple first processes 20 can run in a computer. Each of the first processes 20 can act as a writer that produces a respective error message upon the occurrence of an error. As indicated by arrows 22, the first processes write the respective error messages to a data structure that acts as an error log 24. Multiple second processes 26, in turn, can read messages from the error log 24 as indicated by arrows 28. An error prediction process 26-1, for example, can use the error messages to perform predictive failure analysis, and a system configuration manager process 26-2 can alter system configuration based upon predicted errors. Also, for example, an error storage process 26-3 can store a record of errors in computer system memory 30.
Unfortunately, there have been shortcomings with earlier mechanisms for passing interprocess messages between writer processes and reader processes. For example, in one earlier message passing mechanism each message can be read by only one reader process; after the message has been read by one reader process it cannot be read subsequently by another reader process. In another earlier message passing mechanism, for example, multiple reader processes can access a message by behaving as a cooperating reading group, but only one cooperating reading group can access each message.
Thus, there has been a need for an apparatus and a method for passing messages from writer processes to reader processes that permits multiple readers to read multiple messages. Moreover, there has been a need for such an apparatus and method in which multiple cooperating reader groups can access multiple messages independently of each other.